package com.ddxz.tool.sql.generator;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * @description
 * @author 朱宗刚
 * @date 2019年10月23日
 * @version 1.0.0
 */

public interface SqlGenerator {
    /**
     * @param result 结果清单
     * @param statistic 统计指标
     * @return SELECT 子句
     */
    String getResult(JSONArray result, JSONArray statistic);


    /**
     * @param order 排序参数
     * @return ORDER BY 子句
     */
    String getOrder(JSONArray order);

    /**
     * @param result 分组清单
     * @return group by 子句
     */
    String getGroup(JSONArray result);

    /**
     * @param condition 过来条件清单
     * @return where 子句
     */
    String getCondition(JSONArray condition);

    /**
     * @param result 结果清单
     * @param statistic 统计指标
     * @param condition 过滤条件清单
     * @param order 排序清单
     * @param table 数据表信息
     * @param type 查询类型
     * @return 查询语句
     */
    String getQuery(JSONArray result, JSONArray statistic, JSONArray condition, JSONArray order, JSONObject table, Integer type);

    String getArgs(JSONArray condition);
}
